package com.improve.frame.log.enums;

import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.annotation.EnumValue;
import lombok.AllArgsConstructor;
import lombok.Getter;

/**
 * @Description
 *      日志类型
 * @Author wzxing918
 * @Date 2021-03-31
 * @Version 1.0.0
 **/
@AllArgsConstructor
@Getter
public enum LogType {
    /**
     * 请求日志
     */
    REQUEST(1, "请求日志"),
    /**
     * 业务日志
     */
    BUSINESS(2, "业务日志"),
    /**
     * 操作日志
     */
    OPERATION(3, "操作日志"),
    /**
     * 系统日志
     */
    SYSTEM(4, "系统日志");

    /**
     * mybatis plus枚举识别,默认取name
     */
    @EnumValue
    private final Integer code;

    private final String desc;

    /**
     * 通过名称获取
     *
     * @param name 名称
     * @return LogType
     */
    public static LogType getLogTypeByName(String name) {
        if (StrUtil.isNotEmpty(name)) {
            LogType[] values = LogType.values();
            for (LogType logType : values) {
                if (logType.name().equals(name)) {
                    return logType;
                }
            }
        }
        return LogType.SYSTEM;
    }
}
